Unity的移动端AR生态系统:AR Foundation,ARCore和ARKit
随着AR技术发展以广泛运用,Unity开发了一个多平台API和一些实用工具,我们把这些工具称为:AR Foundation。它支持ARCore、ARKit以及未来新平台的的核心功能。
我们将通过本文分享Unity的移动端AR生态系统中AR Foundation,ARCore和ARKit的功能与区别,它们的发展计划。
本文也将提供一些实用资源,帮助你更好地了解AR Foundation如何适用于移动端AR开发生态系统,以及如何使用它来构建优秀的移动端AR应用。
功能更新
我们对AR Foundation和其它XR资源包进行了大量更新,下面将为大家介绍重点的功能更新。
轻量级渲染管线LWRP支持
现在你可以通过使用轻量级渲染管线LWRP,更好地控制使用AR Foundation构建的ARCore和ARKit应用的渲染效果。
轻量级渲染管线LWRP支持也让开发者能够利用Unity内置Shader Graph着色器视图,通过可视化节点编辑器创作有趣的效果。
摄像机图像API
Unity现在提供对CPU上摄像机图像的底层访问,以及优化的转换功能,用于将图像转换为RGB或灰度。该功能适用于希望为自定义计算机视觉算法定制图像处理过程的开发者。
你可以查看AR Foundation用户手册,并在GitHub示例库获取示例场景和源代码。
摄像机图像API示例场景和源代码:
https://github.com/Unity-Technologies/arfoundation-samples/blob/master/Assets/Scripts/TestCameraImage.cs
世界地图(ARKit)
我们添加了对ARKit的ARWorldMap(AR世界地图)功能支持,它可以让你创建持续的多用户AR体验。目前,该功能仅适用于支持ARKit的iOS设备。
面部跟踪(ARKit)
AR Foundation现在加入了对ARKit面部跟踪功能的支持,它可以让你跟踪面部并获取混合形状,以实现大量面部功能。
资源包的选择
AR Foundation提供了一个独立于平台的脚本API和MonoBehaviour,以通过使用ARCore和ARKit共有的核心功能构建同时适用于二个平台的应用程序。
这可以让开发者只需开发一次应用,就可以部署到二个平台的设备上,不必进行任何改动。AR Foundation的完整支持功能请查阅下面的表格。
AR Foundation还未实现ARKit和ARCore的所有功能,如果你的应用依赖AR Foundation尚未支持的功能,你可以单独使用对应的SDK。我们会不断地为AR Foundation添加新功能,希望AR Foundation能在未来满足面向ARCore和ARKit开发者的所有需求。
如果你只面向ARCore进行开发并希望获取完整的功能集,Google为Unity提供了ARCore SDK for Unity。如果你只面向ARKit进行开发并希望获取完整的功能集,我们提供适用于Unity的ARKit插件。
下图展示了SDK之间的区别:
资源包
介绍
AR Foundation
AR Foundation将ARKit和ARCore的底层API包装到整合的框架中,并提供额外的实用功能,例如会话生命周期管理,以及用于展示环境中已检测功能的MonoBehaviour。
Google ARCore SDK for Unity
该SDK为ARCore支持的重要AR功能提供原生API,并在Unity中向Android平台公开这些API。
Unity ARKit Plugin
该插件用于在Unity中构建ARKit体验,它在Unity中公开了C#语言的ARKit objective-c API,以便开发者进行使用。它还提供辅助脚本和实用功能,从而利用兼容iOS设备的前置和后置摄像机。
资源文档
AR Foundation用户手册:
https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@1.0/manual/cpu-camera-image.html
Android ARCore快速入门:
https://developers.google.com/ar/develop/unity/quickstart-android
Unity ARKit插件介绍:
https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/overview
AR Foundation安装:
https://docs.unity3d.com/Packages/com.unity.package-manager-ui@1.8/manual/index.html
ARCore SDK for Unity:
https://developers.google.com/ar/develop/unity/quickstart-android
Unity的ARKit插件:
https://bitbucket.org/Unity-Technologies/unity-arkit-plugin
功能对比和路线图
下面表格中是AR Foundation,ARCore和ARKit功能对比和开发路线图。
支持功能
AR Foundation
ARCore
ARKit
垂直平面检测
支持
支持
支持
水平平面检测
支持
支持
支持
特征点检测
支持
支持方向特征点
支持
光照估算
支持
支持色彩校正
支持色温
碰撞检测(特征点和平面光线投射)
支持
支持
支持
图像跟踪
开发中
仅支持静态
支持
Environment Probes
开发中
支持
世界地图
支持
支持
面部跟踪(姿势,网格和混合形状)
支持
仅支持iPhone X及更高型号
云锚点
开发中
支持
编辑器远程调试功能
预览阶段
Preview即时预览功能
ARKit Remote
编辑器模拟功能
预览阶段
LWRP支持(支持使用Shader Graph着色器视图)
支持3.3.0版本
开发中
开发中
摄像机图像API
支持
远程调试
远程调试是我们正在测试的主要功能,预计在2019年发布。远程调试功能可以从运行ARCore或ARKit的设备将传感器数据流式传输到Mac或PC端编辑器,该功能将提高迭代速度,有助于开发者调试AR应用。
模拟功能
除了远程调试功能外,我们还加入了编辑器内的模拟功能。该功能可让你不必在电脑连接Android或iOS设备,就可以开发和测试AR应用,该功能可以大幅提升开发和调试的速度。
更多平台支持
我们将在2019年扩展平台支持,不仅支持移动端AR设备,还支持穿戴式AR设备。
快速入门
我们创建了GitHub示例代码库,提供包含AR Foundation的Unity项目和场景。该示例库包含多个脚本,用于可视化平面和特征点,在发现平面放置对象,以及光照估算功能。
我们最近还为示例库添加了一些用户体验功能,包含大量动画,用于指导用户找到平面,放置对象并在平面不再更新时淡出平面,请查看SampleUXScene了解相关功能。
下载AR Foundation Samples示例库:
https://github.com/Unity-Technologies/arfoundation-samples
小结
希望你通过本文学习,清楚的了解Unity的移动端AR生态系统,并且学会使用AR Foundation构建优秀的移动端AR应用。更多Unity精彩内容分享,尽在Unity官方中文论坛(UnityChina.cn)!
推荐阅读
官方活动
2019年5月10日-12日上海,Unite大会强势回归。 暖冬特惠票正式开售,购票即获指定Asset Store资源商店精品21款资源的5折优惠券。[了解详情...]
购票链接:
http://UniteShanghai2019.bagevent.com
Unity全球学生开发挑战赛火热进行中(最后一个月)
Unity面向全球的学生推出-Unity全球学生开发挑战赛,寻找全世界最具创意,展现自我的学生开发者团队。[了解详情...]
活动地址:
https://connect.unity.com/challenges/gsc2018
点击“阅读原文”访问Unity官方中文论坛